/*
* Copyright (C) 2006-2012 TongYan Corporation
* All rights reserved.
*
* @brief info:
*
* @author: 王哲成 - wangzhecheng@yeah.net
* @date: 2021.05.25
* @last modified: 2021-05-25 16:15
*
*/


#ifndef __GAUSS_NEWTON_METHOD_HEADER__
#define __GAUSS_NEWTON_METHOD_HEADER__

#include "LocalSearchMethod.hpp"

class GaussNewton : public LocalSearchMethod {
public:
  GaussNewton(const ISGObjectFunction *const ptr, const size_t &nseed,
               const double &epsilon = 1e-2)
      : LocalSearchMethod(ptr, nseed, epsilon) {}

  // 迭代更新点的位置，收敛返回true，否则false
  virtual bool updateSearchPoint(const ParamSet &param_set,
                                 Candidate &candidate) const override;
};

#endif
